package com.xoa.service.hr;

import com.xoa.model.common.HrCode;


import com.xoa.model.hr.HrStaffTitleEvaluation;
import com.xoa.util.ToJson;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;



public interface HrStaffTitleEvaluationService {

    /**
     * 分页查询所有的入职评定信息
     * @return
     */
    ToJson<HrStaffTitleEvaluation> selectAll(Integer page, Integer pageSize, Boolean useFlag,String byEvaluStaffs);

    /**
     * 根据主键ID查询详情
     * @param evaluationId
     * @return
     */
    ToJson<HrStaffTitleEvaluation> selectByPrimaryKey(Integer evaluationId);

    /**
     * 修改某条职位评定的记录
     * @param record
     * @return
     */
    ToJson<HrStaffTitleEvaluation> updateByPrimaryKeySelective(HttpServletRequest request,HrStaffTitleEvaluation record);

    /**
     * 删除职位评定记录的方法
     * @param evaluationIds
     * @return
     */
    ToJson<HrStaffTitleEvaluation> deleteAnyEvaByPrimaryKeys(Integer [] evaluationIds);

    /**
     * 新增职位评定信息
     * @param record
     * @return
     */
    ToJson<HrStaffTitleEvaluation> insertSelective(HttpServletRequest request,HrStaffTitleEvaluation record);

    /**
     * 按条件查询评定信息
     * @param record
     * @return
     */
    ToJson<HrStaffTitleEvaluation> selectByCon(HttpServletRequest request, HttpServletResponse response,HrStaffTitleEvaluation record,Integer page,Integer pageSize,Boolean useFlag,String export,Integer[] deptId);

    /**
     * 导入文件
     * @param request
     * @param response
     * @param file
     * @return
     */
    ToJson<HrStaffTitleEvaluation> importIncentiveInfo(HttpServletRequest request, HttpServletResponse response, MultipartFile file);

    /**
     * 获取职位获取方式的方法
     * @param type
     * @return
     */
    ToJson<HrCode> getHrCodes(String type);

    /**
     * 根据条件查数量
     * @param hrStaffTitleEvaluation
     * @param deptId
     * @return
     */
    ToJson<HrStaffTitleEvaluation> selectNumByCon(HrStaffTitleEvaluation hrStaffTitleEvaluation,Integer[] deptId);

    /**
     * 根据 staffName查找职称评定
     * @param staffName
     * @return
     */
    ToJson<HrStaffTitleEvaluation> getByStaffName(String staffName, Integer page, Integer pageSize, boolean useFlag);
}
